The data transfer information between the Wireless Universal Serial Bus (USB) Host Controller Driver (WHCD) and the Wireless USB Host Controller (WHC) in a wireless USB host is specified in a Queue Element Transfer Descriptor (qTD) data structure 100 as shown in FIG. 1. The Small transfer bit (S) indicates that the page list pointer contains the physical memory address of a physical page of a data buffer or the physical memory address pointer of a page list in the qTD data structure 100. When WHCD sets S to 1, it writes the physical memory address of the physical page of the data buffer in a page list pointer of the qTD data structure 100 and when WHCD sets S to 0, it writes the physical memory address pointer of the page list in the page list pointer.
FIG. 2 illustrates the typical memory arrangement 200 of the page list and the pages when S is set to 0. Element 210 shows the page list pointer that points to the start address of a page list 220. The page list is an array that contains the physical memory address pointers to the individual pages of a data buffer 230. FIG. 3 illustrates the typical memory arrangement of the pages 300 when WHC is transferring 64 kilobytes of data to the WHCD. The first and last pages are assumed to be aligned to 4096 bytes and each packet size is assumed to be 3584 bytes.
As the maximum size of a page is 4096 bytes, 16 pages are required to transfer the 64 kilobytes of data. Whenever the WHC receives 3584 bytes of data from a wireless USB device, it writes the data into the host memory of the wireless USB host. As the packet size is not aligned to the page size of 4096 bytes of data, fragmentation of the packets is required for the data transfer. For example, the first page is a concatenation of a first data packet P1 302 of 3584 bytes and a first fragment of a second data packet P2-1 304 of 512 bytes. The first data packet P1 302 is not fragmented as its size of 3584 bytes of data can be stored entirely within the first page. The second data packet P2 of 3584 bytes of data is fragmented into two fragments, namely, P2-1 304 of 512 bytes of data and P2-2 306 of 3072 bytes to fit the 4096 bytes limitation of the first page. The explanation of the fragmentation of the other packets to fit into the other pages is not described herein as it is apparent to one of ordinary skill in the relevant art.
When the WHCD is exchanging data with the WHC with S bit set to 0, the WHC is required to fetch the page list and initiate the data transfers into the individual pages. The additional overhead of the WHC to fetch the page list and initiate the data transfers into the individual pages slows down the data transfer between the WHCD and WHC.